home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue55 / Clinic / ListViewEgU.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-01-03  |  1.3 KB  |  55 lines

  1. unit ListViewEgU;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   ComCtrls, StdCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     ListView1: TListView;
  12.     ListBox1: TListBox;
  13.     procedure ListView1Changing(Sender: TObject; Item: TListItem;
  14.       Change: TItemChange; var AllowChange: Boolean);
  15.     procedure ListView1Change(Sender: TObject; Item: TListItem;
  16.       Change: TItemChange);
  17.   private
  18.     FListItem: TListItem;
  19.     FChecked: Boolean;
  20.   end;
  21.  
  22. var
  23.   Form1: TForm1;
  24.  
  25. implementation
  26.  
  27. {$R *.DFM}
  28.  
  29. procedure TForm1.ListView1Changing(Sender: TObject; Item: TListItem;
  30.   Change: TItemChange; var AllowChange: Boolean);
  31. begin
  32.   if Change = ctState then
  33.   begin
  34.     FListItem := Item;
  35.     FChecked := Item.Checked
  36.   end
  37. end;
  38.  
  39. procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
  40.   Change: TItemChange);
  41. const
  42.   BooleanIdents: array [Boolean] of string = ('False', 'True');
  43. begin
  44.   if (Change = ctState) and (Item = FListItem) and
  45.      (Item.Checked <> FChecked) then
  46.   //A checkbox has been toggled
  47.   begin
  48.     ListBox1.Items.Add(Format('Item %d (%s): Checked = %s',
  49.       [Item.Index, Item.Caption, BooleanIdents[Item.Checked]]));
  50.     ListBox1.ItemIndex := ListBox1.Items.Count - 1
  51.   end
  52. end;
  53.  
  54. end.
  55.